package com.demo.java.OD251_300.OD283;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【寻找相似单词】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146079575
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();  // 单词数量
        String[] words = new String[n];

        // 读取单词列表
        for (int i = 0; i < n; i++) {
            words[i] = scanner.next();
        }
        String target = scanner.next();  // 目标单词
        List<String> result = new ArrayList<>();

        // 查找相似单词
        for (String word : words) {
            if (isSimilar(word, target)) {
                result.add(word);
            }
        }

        // 如果结果为空，输出 null
        if (result.isEmpty()) {
            System.out.println("null");
        } else {
            // 按字典序排序
            Collections.sort(result);
            // 输出结果
            System.out.println(String.join(" ", result));
        }
    }

    /**
     * 判断两个单词是否为相似单词
     */
    private static boolean isSimilar(String a, String b) {
        if (a.length() != b.length()) {
            return false;
        }
        char[] aArr = a.toCharArray();
        char[] bArr = b.toCharArray();
        Arrays.sort(aArr);
        Arrays.sort(bArr);
        return Arrays.equals(aArr, bArr);
    }
}